The following conventional techniques have been adopted in an attempt to reduce a position error in a position control apparatus that includes a linear scale attached to a movable portion of a machine tool to detect the position of a driven member and performs full-closed control based on a comparison between a detected driven member position and a position command value.
To reduce the position error in a transient response, it is useful to set the gain of a speed loop and the gain of a position loop to higher values. In this case, the driven member can be accurately controlled in such a way as to reduce adverse influence of an unpredictable load change or disturbance, such as a change in sliding friction of the movable portion or a cutting load.
FIG. 7 is a block diagram illustrating a general full-closed control system. A linear scale 11 directly detects the position of a driven member 12 and generates a position detection value Pl that represents the position of the driven member 12. A subtractor 2 receives the position detection value Pl as a position feedback value, and calculates a deviation Pdif of the position detection value Pl relative to a position command Pc. A speed command calculator 3 multiplies the position deviation Pdif by a proportional gain Kp, and outputs a multiplication result as a speed command Vc. Meanwhile, a motor position detector 9 is attached to a motor 10 that drives the driven member 12, and generates a position detection value Pm. A differentiator 14 differentiates the position detection value Pm and outputs a differentiation result as a motor speed detection value Vm. A subtractor 4 obtains a deviation of the motor speed detection value Vm relative to the speed command Vc and outputs the obtained deviation as a speed deviation. A torque command calculator 5 multiplies the speed deviation by a speed loop proportional gain Pv, and outputs a multiplication result as a speed deviation proportional component. Meanwhile, a torque command calculator 6 multiplies an integrated value of the speed deviation by a speed loop integrated gain Iv, and outputs a multiplication result as a speed deviation integral component. An adder 7 adds the speed deviation proportional component and the speed deviation integral component, and outputs an addition result as a torque command Tc. A portion 8 illustrated in FIG. 7 includes various filters capable of filtering the torque command, and a current control unit. The current control unit functions as a driving unit that controls the motor 10 in response to the torque command Tc, and drives the driven member 12 via a ball screw 13.
It is assumed herein that the transfer characteristic of the various filters and the current control unit, which are represented by the reference numeral 8 in FIG. 7, is equal to 1 and the driven member is connected to the motor via a spring having a spring coefficient Kb. It is also assumed that the motor and the driven member 12 have motor-shaft-converted inertia Jm and Jl and viscous friction coefficients Dm and D1, respectively. In this case, a simplified model is provided as illustrated in the block diagram of FIG. 8, which shows the transfer characteristic from the torque command Tc to the position detection value Pl of the driven member.
In FIG. 8, a simplified model is provided based on an assumption that Vm represents the motor speed detection value and S represents a Laplacian operator. In this case, a sum of the motor acceleration torque Jm·S·Vm, the motor viscous friction Dm·Vm and a counterforce torque Tr the torque command Tc. It is expressed in this model that the speed detection value Vm of the motor is obtained when a difference between the torque command Tc and the counterforce torque Tr is put in a motor model 16. In addition, an integrator 17 integrates the motor speed detection value Vm to generate the motor position detection value Pm to be input to a spring-based model 18.
In the spring-based model 18, a difference between the motor position detection value Pm and the position detection value Pl of the driven member is calculated, and the calculated difference is multiplied by a spring constant Kb of a spring model 20 to generate a transfer torque to be transferred to the driven member. The transfer torque to the driven member is equal to the counter force torque Tr from the driven member, and a simplified model is provided when Vl represents a speed detection value of the driven member. In this case, the transfer torque equals a total sum of an acceleration torque Jl·S·Vl of the driven member and a viscous friction D1·Vl of the driven member. FIG. 8 illustrates that a driven member model 21 receives the transfer torque to the driven member to provide the speed detection value Vl. Further, an integrator 22 integrates the speed detection value Vl of the driven member to provide the position detection value Pl of the driven member.
In FIG. 7, it is assumed that the transfer characteristic from the speed command Vc to the motor speed detection value Vm equals 1. That is, a responsive band of the speed feedback control system is high enough to configure the control system so that it is capable of suppressing an influence of the counter force torque Tr from the driven member in FIG. 8. The block diagram of FIG. 7 may be replaced by the block diagram of FIG. 9.
More specifically, the transfer characteristic of the motor speed detection value Vm from the speed command Vc can be replaced by 1, as indicated by reference numeral 23. Further, the integrator 17 integrates the motor speed detection value Vm to provide the motor position detection value Pm, as in the structure of FIG. 8. The spring-based model 18 receives as an input the motor position detection value Pm and outputs the position detection value Pl of the driven member. In this case, a transfer function of the entire control system is expressed by the following formula (1). In formula (1), S represents a Laplacian operator.Pl(S)/Pc(S)=Kp·Kb/(Jl·S3+D1·S2+Kb·S+Kp·Kb)  formula (1)
If a condition Kp<<(Kb/Jl)1/2 is applied to the above formula, a gain diagram representing a characteristic of the entire control system is obtained as illustrated in FIG. 13.
Recent developments in various filtering techniques or damping controls and introduction of improved speed loops have enabled setting of high values in position/speed loop gain setting. However, the rigidity of a working part of the feed-axis may decrease due to aging (e.g., frictional wear and looseness) of a component that constitutes a driving mechanism, or due to reduction in tensile strength of a ball screw that is derived from expansion of the ball screw, which may occur when the temperature increases during a continuous operation. In this case, the mechanical resonance frequency (Kb/Jl)1/2 decreases, and the gain characteristic of the entire control system defined by formula (1) is as illustrated in FIG. 14. More specifically, a gain margin of the mechanical resonance frequency (Kb/Jl)1/2 decreases due to high setting of the position loop gain. In some cases, a driven member may vibrate at low frequencies. Further, in a large-scale machining center or the like, the mechanical resonance frequency (Kb/Jl)1/2 decreases if a workpiece mounted on a driven member is heavier than expected. Therefore, low frequency vibrations occur similarly. To solve the above-described problem, the following technique is conventionally available.
FIGS. 10 and 11 are control block diagrams illustrating conventional techniques directed to suppress low frequency vibrations. Components similar to those illustrated in FIG. 7 are denoted by the same reference numerals and descriptions thereof are not repeated. An aging corrector 40 illustrated in the drawings will be described in detail below.
In FIG. 10, a position detection value calculator 27 outputs a position feedback value Pd, which represents the position defined by formula (2) below including the driven member position detection value Pl and the motor position detection value Pm. In formula (2), Tp represents a time constant of a first-order delay circuit 25 and S represents a Laplacian operator.Pd=Pm+(Pl−Pm)/(1+Tp·S)  formula (2)
In formula (2), 1/(1+Tp·S) represents the first-order delay circuit, and the first-order delay circuit 25 illustrated in FIG. 10 calculates the second term of formula (2).
In FIG. 11, a speed detection value calculator 32 outputs a speed feedback value Vd which represents speed defined by the following formula (3) including the driven member position detection value Vl which has been obtained in the differentiator 28 by differentiating the driven member position detection value Pl, and the motor speed detection value Vm. In formula (3), Tv represents a time constant of a first-delay circuit 30 and S represents a Laplacian operator.Vd=Vm+(Vl−Vm)/(1+Tv·S)  formula (3)
In formula (3), 1/(1+Tv·S) represents the first-order delay circuit, and the first-order delay circuit 30 illustrated in FIG. 11 calculates the second term of formula (3).
Next, the aging corrector 40 will be described. The aging corrector 40 receives as inputs the position command Pc and the driven member position detection value Pl, and detects the vibration of the driven member while the driving mechanism is not in the acceleration/deceleration state. Upon detection of the vibration of the driven member, the aging corrector 40 increases the time constants Tp and Tv of the first-order delay circuits 25 and 30, respectively. Alternatively, the aging corrector 40 decreases the gain Kp of the speed command calculator 3, the speed loop proportional gain Pv of the torque command calculator 5, or the speed loop integral gain Iv of the torque command calculator 6.
A dotted line in FIG. 15 indicates a gain characteristic of the entire control system illustrated in block diagrams of FIGS. 10 and 11 in the case where the values of Tp and Tv become larger under condition of Tp>>(Kb/M)1/2 and Tv>>(Kb/M)1/2 in formula (2) and (3). In this case, the gain margin in the mechanical resonance frequency (Kb/M)1/2 increases. Further, a solid line in FIG. 13 indicates a gain characteristic of the entire control system in the case where the rigidity of a working part of the feed-axis is reduced. Thus, the problem of low frequency vibrations occurring in the conventional example illustrated in FIG. 7 has been solved.
A solid line in FIG. 16 indicates a gain characteristic of the entire control system illustrated in FIGS. 10 and 11 in the case where the gain Kp of the speed command calculator 3 is reduced while the rigidity of a working part of the feed-axis decreases. A resulting gain margin of the mechanical resonance frequency (Kb/Jl)1/2 is larger, which is useful in solving the problem of low frequency vibrations having occurred in the conventional example illustrated in FIG. 7.
A structure of the aging corrector 40 is described. FIG. 12 is a control block diagram illustrating a structure of the aging corrector 40. The position command Pc is input to a second-order differentiator 41 and subjected to second-order differentiation to calculate an acceleration command Ac. A comparator 43 compares the calculated acceleration command Ac with a predetermined acceleration command threshold value Acref. If the acceleration command Ac is equal to or less than the acceleration command threshold value Acref, it is determined that the driving mechanism is not in the acceleration/deceleration state (i.e., is in a normal state) and a vibration detection starting signal is output to a vibration detector 48.
As another input in addition to the vibration detection starting signal, the vibration detector 48 also receives a driven member position error signal that represents a difference between the position command value Pc and the driven member position detection value Pl. The vibration detector 48 calculates, while the vibration detection starting signal is output, a vibration frequency fp of the vibration included in the driven member position error signal, by using a frequency analyzing method such as Discrete Fourier Transform (DFT) or Fast Fourier Transform (FFT). In this case, a detection range of the vibration frequency fp is limited to a predetermined range from “fst” to “fen.” It is regarded that the vibration is present only when the magnitude (amplitude) of the vibration included in the driven member position error signal is larger than a predetermined constant value SPref, and the vibration frequency fp is then output.
A divider 49 calculates a vibration period as the reciprocal of the received vibration frequency fp and outputs an initial time constant value T0 based on the calculated vibration period. The calculated initial time constant value T0 is set as initial values of the time constants Tp and Tv to be used in the first-order delay circuit 25 or 30. If the vibration frequency fp is continuously detected by the vibration detector 48 even after the values of the time constants Tp and Tv have been updated, a counter 51 starts a count-up operation and adds a predetermined time constant increment ΔT to increase the values of the time constants Tp and Tv by the time constant increment ΔT.
When the vibration detector 48 outputs the vibration frequency fp, a gain conversion initial value setting unit 53 performs the following calculations to provide a gain conversion initial value Ks by using the received vibration frequency fp as an input. In the structure illustrated in FIG. 11,
if {Iv/(Jm + Jl)}1/2 > 2πfp,formula (4)then Ks = 2πfp / {Iv/(Jm + Jl)}1/2In the structure illustrated in FIG. 10, if Kp > 2πfp, Ks = 2πfp / Kp.Otherwise, Ks = 1
The calculated gain conversion initial value Ks is set as an initial value of the gain conversion value K. If the vibration frequency fp is continuously detected by the vibration detector 48 even after the value of the gain conversion value K has been updated, a counter 55 starts a count-up operation and reduces a predetermined gain decrement ΔK to decrease the gain conversion value K by the gain decrement ΔK. The gain conversion value K is subjected to limit processing in a gain output switcher 59 so that the gain conversion value K falls within the range 0<K<1. Once the gain conversion value K is output, the speed command calculator 3 illustrated in FIG. 10 reduces the gain Kp to a value obtained by multiplying the original setting value of the gain Kp by the gain conversion value K. In the case of the structure illustrated in FIG. 11, the speed command calculator 3 reduces the gain Kp, the torque command calculator 5 reduces the speed loop proportional gain Pv, and the torque command calculator 6 reduces the speed loop integral gain Iv by multiplying original values thereof by the gain conversion value K.
In the conventional example illustrated in FIG. 12, it is feasible to prioritize the update of the time constants Tp and Tv rather than the update of the gain conversion value K in the gain output changer 59. More specifically, a comparator 58 compares the time constants Tp and Tv with a predetermined permissible time constant Tref. As a result of the comparison, if the time constants Tp and Tv exceed the permissible time constant Tref, the gain conversion value K is updated.
As described above, the aging corrector 40 illustrated in FIG. 12 can increase the time constants Tp and Tv of the first-order delay circuits 25 and 30 by a necessary amount. Alternatively, the aging corrector 40 can decrease the gain Kp of the speed command calculator 3, the speed loop proportional gain Pv of the torque command calculator 5, and the speed loop proportional gain Iv of the torque command calculator 6 by necessary amounts. Accordingly, it is feasible to solve the problem of low frequency vibrations having occurred in the conventional example illustrated in FIG. 7, while preventing an excessive gain margin from being secured and avoiding a significant decrease in responsiveness of the control system.
In the conventional technique illustrated in FIG. 12, the vibration frequency fp of the vibration included in the driven member position error signal is calculated using a frequency analyzing method such as DFT (FFT). In this case, however, there are problems such as (1) low calculation accuracy of the time constant due to inability to set a higher frequency resolution, (2) a large amount of memory usage, and (3) time-consuming tracing and analyzing of data.
For example, if an attempt is made to detect a low frequency vibration equivalent to 10 Hz in a system having a sampling period of 1 ms, a resulting frequency resolution will be 0.98 Hz in the case where the FFT calculation is performed for 1,024 sampling points. Resulting spectra correspond to 9.77 Hz and 10.74 Hz as spectra around 10 Hz. If these spectra are converted to vibration periods, however, resulting periods are 102.4 ms and 93.1 ms and a difference between the two is 9.3 ms. This is a very large difference relative to the 1 ms sampling period.
JP No. 2012-168926 A discloses that, assuming that the time constants Tp and Tv, which are changeable by the aging corrector 40, are also applicable to a moving average having a high-pass shielding characteristic (Finite Impulse Response (FIR) Filter), in addition to the first-order delay circuits 25 and 30, a moving average of Tp/Ts stage and a moving average of Tv/Ts stage are constituted for a sampling period Ts of the control system. In this case, however, the shielding characteristic of a corresponding frequency varies greatly depending on whether the time constants Tp and Tv are 102.4 ms or 93.1 ms.
To improve calculation accuracy of the time constant, it is useful to increase the sampling number. For example, spectra corresponding to 9.89 Hz and 10.01 Hz can be obtained by changing the sampling number to 8,192 points. If these spectra are converted to vibration periods, resulting periods are 101.1 ms and 99.9 ms. Thus, it is feasible to set the time constants Tp and Tv having a resolution equivalent to a 1 ms sampling period.
As the sampling number increases, an accompanying memory amount necessary for storing and analyzing data for sampling also increases. Further, it takes a long time to trace time-series data, as a series of data covering the sampling number×the sampling period are necessary. In addition to the increase of the time necessary for tracing, the time for performing a butterfly calculation in FFT also becomes longer due to an increase of the sampling number.
Meanwhile, JP 2012-168926 A also discloses another method of identifying the vibration frequency fp of the vibration included in the driven member position error signal. Using the method, a vibration period (initial time constant value T0) is detected as the reciprocal of the vibration frequency fp based on a time interval between the maximum value and the minimum value of the driven member position error signal.
In a transition process, however, of the vibration included in the position error signal where the vibration changes from the maximum value to the minimum value and vice versa, it is not always the case that monotone decreasing/increasing is repeated. For example, the vibration may frequently repeat increasing and decreasing due to the noise in the detector or the like and the length of the vibration amplitude may change for each vibration period. If the timing where the position error signal changes from increase to decrease is determined to be the maximum vibration value H and the timing where the position error signal changes from decrease to increase is determined to be the minimum vibration value, a vibration period greatly shorter than the true value of the period due to an influence of noise or the like should be detected. On the other hand, if the maximum value and the minimum value of the vibration are detected from among the time-series data including more than one period, a detected vibration period is greatly longer than the true value of the vibration period due to an influence of length change or the like.
Thus, if an attempt is made to identify the vibration period simply from the time interval between the maximum value and the minimum value of the time-series data, there is a problem that an erroneous vibration period may be detected.
Further, since a constant vibration occurs in a state where the rigidity of a working part of the feed-axis is reduced, it is necessary to suppress the vibration by updating the time constants Tp and Tv, or the gains Kp, Pv, and Iv. In contrast, these parameters need not be changed if the constant vibration is not occurring. In the conventional technique illustrated in FIG. 12, however, these parameters are forcibly changed even if an impulse-like disturbance is instantaneously applied. Thus, there is a problem that responsiveness of the control system is reduced due to change of the parameters and securing of an excessive gain margin.
A problem to be solved by the present invention is that a large amount of memory and a lot of time are required for accurately identifying the vibration frequency fp (time constant initial value T0) included in the driven member position error signal. Further, the vibration period (time constant initial value T0) is erroneously detected if an attempt is made to detect the vibration period from the time-series data due to an influence of noise of the detector or the like. Further, responsiveness of the control system is reduced due to change of the parameters (the time constants Tp and Tv, or the gains Kp, Pv, and Iv) and securing of an excessive gain margin when the impulse-like disturbance is applied instantaneously. An object of the present invention is to provide a position control apparatus that can accurately detect a low frequency vibration of a driven member and suppress the detected low frequency vibration without requiring a large amount of memory and a lot of time and without being affected by noise of a detector or the like. Another object of the present invention is to provide a position control apparatus that can minimize reduction in responsiveness of a control system without securing an excessive gain margin even if an impulse-like disturbance is applied.